iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 7
2

Yarn 是一個新的套件管理工具,以提供的功能面向來說,和大家熟知的 npm 是差不多的,但 npm 的安裝與套件快取通常都需要花費不少時間,而 Yarn 提供了更快速度、更安全、更可靠的環境,來讓開發者的開發過程更加簡單。

這邊我們就用 npm 來安裝並實際來執行一次,如果沒有安裝 Node.js 也可以使用 Homebrew 來安裝

安裝 Yarn

於終端機或命令提示字元中執行以下指令:

npm install -g yarn  

載完後可以輸入以下指令來看看是否有安裝成功:

yarn —version 

目前官網上寫得穩定版本是 1.10.1

Yarn 的運作模式

Yarn 透過載入 yarn.lock 檔案來解決了在 npm 中套件版本可能與他人電腦版本不同而造成的問題,使其具備可靠性與確定性。這個 yarn.lock 會鎖定安裝的相依模組為特定版本,確保安裝在每台機器上的 node_modules 結果是一致的。lockfile 使用精準的格式撰寫與排序鍵值來確保修改動作最小化,同時在審核的時候也比較單純。
整個安裝流程可以分為三個步驟:

  1. 辨識:Yarn 發送請求到套件庫並檢查每一個模組,然後開始解析相依的套件模組
  2. 擷取:Yarn 查找全域快取的目錄,確認所需要的套件是否已經被下載了。如果沒有,Yarn 開始下載模組的壓縮包並存到全域快取的目錄下,也就是說離線時也可以使用且同樣的模組不需要下載兩次。相依模組使用也可以以壓縮檔的形式加入版本控制當中。
  3. 鏈接:最後,Yarn 從全域快取中複製所需的套件到本地的 node_modules 。

因為將整個過程分成這幾個步驟,讓結果可以保持一致性,也就是說 Yarn 可以平行處理這每個操作,讓整個安裝流程更快速,且多個執行的指令之間不會互相干擾。Yarn 會把套件的檢核資訊都存放在 yarn.lock 來確保每一次安裝的都是一樣的套件模組。

Yarn 測試

安裝套件的時間來比較看看
實際 RUN 一次,在同樣已經安裝過一次的情況之下,yarn add eslint 的速度比起 npm install eslint 真的快很多呢!

yarn add eslint 時間

https://ithelp.ithome.com.tw/upload/images/20181101/20111449CsUq1WPanR.png

npm install eslint 時間

https://ithelp.ithome.com.tw/upload/images/20181101/20111449SGBRiCH3Wg.png

Yarn 與 npm 的持用指令對照圖

npm (v5) Yarn
npm install yarn install
npm install [package] —save yarn add [package]
npm install [package] —global yarn global add [package]
npm rebuild yarn add —force
npm uninstall [package] yarn remove [package]
完整對照圖:https://yarnpkg.com/lang/en/docs/migrating-from-npm/

整理 Yarn 優點:

  • 快速: 下載的套件模組會存入快取,不需要再重複下載,且 Yarn 可以平行處理多個執行。
  • 可靠: 使用 yarn.lock 提高一致性與穩定性。

使用 npm 來安裝套件模組對於開發者來說算是很常見的,如果你本身就有使用 npm,不妨也來試用看看 yarn 吧!


上一篇
Sourcetree - git 的 GUI 管理軟體
下一篇
nvm - 版本隨你切
系列文
前端工具百寶箱 - 六角學院30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言